package xyz.xmh.pattern.structural.bridgepattern;

/**
 * Shape
 * 图形类，可以桥接各种功能
 *
 * @author xuMingHai
 * @since 2021/4/30 星期五 9:37
 */
public abstract class Shape {
    /**
     * 被桥接的功能
     */
    protected DrawApi drawApi;

    /**
     * 要实现的功能
     *
     * @param drawApi 功能接口
     */
    protected Shape(DrawApi drawApi) {
        this.drawApi = drawApi;
    }

    /**
     * 功能实现（可以被各种图形实体类实现）
     */
    public abstract void draw();

}
